From 6da2b1ae559126b753c7c653b31bd83b56962bbc Mon Sep 17 00:00:00 2001 From: Keir Fraser Date: Tue, 20 Apr 2010 07:54:47 +0100 Subject: [PATCH] x86: No need to sync_local_execstate() during CPU hot-unplug. This is done implicitly when we enter stopmachine_run() context, because the underlying tasklet mechanism performs the sync before running a tasklet handler. Signed-off-by: Keir Fraser --- xen/arch/x86/smpboot.c | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) diff --git a/xen/arch/x86/smpboot.c b/xen/arch/x86/smpboot.c index b5aaa020f3..f3368302f6 100644 --- a/xen/arch/x86/smpboot.c +++ b/xen/arch/x86/smpboot.c @@ -1002,11 +1002,7 @@ void cpu_exit_clear(void) { int cpu = raw_smp_processor_id(); - /* Previous non-idle state should be synchronised already. */ - if (__sync_local_execstate()) - BUG(); - - cpucount --; + cpucount--; cpu_uninit(); cpu_clear(cpu, cpu_callout_map); @@ -1299,13 +1295,6 @@ int __cpu_disable(void) remove_siblinginfo(cpu); - /* - * If we are running the idle vcpu, sync last non-idle vcpu's state - * before changing cpu_online_map. If we are running non-idle vcpu, - * we will synchronously sync the state in context_switch() later. - */ - sync_local_execstate(); - /* It's now safe to remove this processor from the online map */ cpu_clear(cpu, cpu_online_map); fixup_irqs(); -- 2.30.2